package com.classinfomation;

/**
 * @author xuehu
 * @date 2021/1/28 10:01
 * 2、关联(Association）
 * 关联关系,是类与类之间的联接,它使一个类知道另一个类的属性和方法,拥有关系。关联可以是双向的,
 * 也可以是单向的，在java语言中,关联关系一般使用成员变量来实现。
 */
public class AssociationTest {

    public static void main(String[] args) {
        AssociationTest dependencyTest = new AssociationTest();


        Kinfe kinfe = new Kinfe();

        Chef chef = dependencyTest.new Chef(kinfe);

        chef.cutting(kinfe, "carrot");


    }

    /**
     * 菜刀
     */
    static class Kinfe {
        public void cutting(String name) {
            System.out.println("切" + name);
        }
    }

    /**
     * 厨师
     */
    class Chef {
        private Kinfe kinfe;

        public Chef(Kinfe kinfe) {
            this.kinfe = kinfe;
        }

        public void cutting(Kinfe kinfe, String vegetables) {
            kinfe.cutting(vegetables);
        }

    }
}
